PEXOR Linux device driver and DABC integration

نویسندگان

  • J. Adamczewski-Musch
  • J. Hoffmann
  • N. Kurz
  • S. Linev
  • S. Minami
  • W. Ott
چکیده

A device driver has been developed to apply the PEXOR hardware for Linux OS. It is realized as a char driver kernel module, currently for kernel versions 2.6.27. The driver operations for read() and write() implement PIO to the PEXOR on-board memory. Operation mmap() allocates kernel buffers for DMA operations and maps these to user space addresses. The pexor kernel module manages these buffers with internal pools. Initiating a DMA transfer, retrieving and releasing DMA buffers is handled from user space by ioctl() operations. The gosip protocol [2] for communication between PEXOR and frontend devices via the SFP connections was integrated to the kernel module. Thus a user program does not need to apply this protocol explicitly, as for the previous LynxOS driver, but calls higher level ioctl() operations to access the SFP slaves. Besides, register i/o to the full address space of the board’s PCIe memory is also available by ioctl(). Hence it is also possible to apply this driver for another FPGA configuration of the PEXOR, e.g. to utilize a different protocol. The driver features a shared interrupt handler which is provided for data trigger interrupts from an attached TRIXOR trigger module. Handling of a “DMA is complete” interrupt which may be used with future versions of the PEXOR firmware is also prepared: the received DMA buffers are managed by a “bottom half” interrupt tasklet. This function is also used in the non-interrupt mode, although here it is invoked directly after polling for a bit of the DMA status register. Finally, the kernel module exports some internal information, such as register contents and numbers of DMA buffers, to sysfs for user inspection.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

DABC data acquisition input for slow control variables

The Data Acquisition Backbone Core (DABC) is a software framework to run DAQ with distributed event building on high performance Linux clusters [1]. There are several use cases, especially in test beam times where the setup during data taking is intentionally changed very often, and the interpretation of the acquired detector data depends on the experimental set-up. Usually, the set-up is manag...

متن کامل

Generic User-Level PCI Drivers

Linux has become a popular foundation for systems with real-time requirements such as industrial control applications. In order to run such workloads on Linux, the kernel needs to provide certain properties, such as low interrupt latencies. For this purpose, the kernel has been thoroughly examined, tuned, and verified. This examination includes all aspects of the kernel, including the device dr...

متن کامل

Low Cost Multisensor Kinematic Positioning and Navigation System with Linux/RTAI

Despite its popularity, the development of an embedded real-time multisensor kinematic positioning and navigation system discourages many researchers and developers due to its complicated hardware environment setup and time consuming device driver development. To address these issues, this paper proposed a multisensor kinematic positioning and navigation system built on Linux with Real Time App...

متن کامل

Generating environment model for Linux device drivers

Linux device drivers can't be analyzed separately from the kernel core due to their large interdependency with each other. But source code of the whole Linux kernel is rather complex and huge to be analyzed by existing model checking tools. So a driver should be analyzed with environment model instead of the real kernel core. In the given paper requirements for driver environment model are disc...

متن کامل

Reuse Linux Device Drivers in Embedded Systems

Device driver is one component that is usually ignored by research community in operating systems. Their design mechanisms, accessing semantics, operating behaviors and runtime performance are crucial to operating system architecture and total system performance. In this paper, an I/O package to reuse Linux device drivers in embedded system is introduced. Via this package, the whole Linux devic...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011